package Facade;

import java.io.File;

public class Facade {

	public FachadaDeArmazenamento fachadaDeArmazenamento = new FachadaDeArmazenamento();
	private FachadaDeNegocio fachadaDeNegocio = FachadaDeNegocio.getInstance();

	public void zerarSistema() {
		fachadaDeArmazenamento.zerarSistema();
		new File("convites.log").delete();
		new File("emails.log").delete();
		new File("sms.log").delete();
		new File("beltrana-fulano.log").delete();
		
	}

	public void criarUsuario(String userName, String nome, String email,
			String senha, String telefone) throws Exception {

		fachadaDeNegocio.criarUsuario(userName, nome, email, senha, telefone);

	}

	public String getUsuarioPorNome(String nome, int indice) throws Exception {

		return fachadaDeNegocio.getUsuarioPorNome(nome, indice);
	}

	public String getAtributoUsuario(String id, String atributo)
			throws Exception {
		return fachadaDeNegocio.getAtributoUsuario(id, atributo);
	}

	public void atualizarUsuario(String id, String atributo, String valor)
			throws Exception {
		fachadaDeNegocio.atualizarUsuario(id, atributo, valor);
	}

	public void removerUsuario(String id) throws Exception {
		fachadaDeNegocio.removerUsuario(id);
	}

	public void encerrarSistema() {
		
	}

	// Facade da US2.txt

	public int login(String userName, String senha, String IP) throws Exception {
		return fachadaDeNegocio.login(userName, senha, IP);
	}

	public boolean estaConectado(String id) {
		return fachadaDeNegocio.estaConectado(id);
	}

	public void logout(String id) throws Exception {
		fachadaDeNegocio.logout(id);
	}

	public int cadastrarUsuario(String userName, String nome, String email,
			String senha, String telefone, String IP) throws Exception {
		return fachadaDeNegocio.cadastrarUsuario(userName, nome, email, senha, telefone,
				IP);
	}

	// Facade da US3.txt

	public String getLocalizadores() throws Exception {
		return fachadaDeNegocio.getLocalizadores();
	}

	public String obterLocalizacao(String usuario) throws Exception {
		return fachadaDeNegocio.obterLocalizacao(usuario);
	}

	public void setLocalizacao(String id, String latitude, String longitude)
			throws Exception {
		fachadaDeNegocio.setLocalizacao(id, latitude, longitude);
	}

	public String getLocalizacao(String id) {
		return fachadaDeNegocio.getLocalizacao(id);
	}

	// Facade da US4.txt

	public void initMensageiro(String tipo) {
		fachadaDeNegocio.initMensageiro(tipo);
	}

	public void setDiretorioGabaritos(String gabaritos) {
		fachadaDeNegocio.setDiretorioGabaritos(gabaritos);
	}

	public String enviarConvite(String indc, String email) {
		return fachadaDeNegocio.enviarConvite(indc, email);
//		compartilhador.enviarConvite(indc, email);
	}

	public void confirmarCompartilhamento(int de, String com, int modo) {
		fachadaDeNegocio.confirmarCompartilhamento(de, com, modo);
	}

	public void recusarCompartilhamento(String de, String com) {
		// TODO
	}

	public String getAmigos(String id) throws Exception {
		return fachadaDeNegocio.getAmigos(id);
	}

	// FAcade us5

	public boolean possoVerLocalizacao(String id, String amigo)
			throws Exception {
		return fachadaDeNegocio.possoVerLocalizacao(id, amigo);
	}

	public void setCompartilhamento(String id, String amigo, int modo)
			throws Exception {
		fachadaDeNegocio.setCompartilhamento(id, amigo, modo);
	}

	public void removerAmigo(String id, String amigo) throws Exception {
		fachadaDeNegocio.removerAmigo(id, amigo);
	}

	// Facade da US6.txt

	public String getLocalizacaoAmigo(String usuario, String amigo)
			throws Exception {
		return fachadaDeNegocio.getLocalizacaoAmigo(usuario, amigo);
	}

	// Facade da US7

	public String enviarEmail(String de, String para, String assunto, String msg){
		
		return fachadaDeNegocio.enviarEmail(de, para, assunto, msg);
	}
	
	
	public String enviarSMS(String de, String para, String msg){
		return fachadaDeNegocio.enviarSMS(de, para, msg);
	}

	public void setPortChat(int port) {

	}

	public void initChat(int id1, int id2) {
		fachadaDeNegocio.initChat(id1, id2);
	}

	public void enviarMensagem(int para, String msg) {
		fachadaDeNegocio.enviarMensagemChat(para, msg);
	}

	public String receberMensagem(int de) {
		return fachadaDeNegocio.receberMensagem(de);
	}

	public void encerrarChat(int id1, int id2) {
		fachadaDeNegocio.encerrarChat(id1, id2);
	}
}
